package Day005_API02.demo01_BigInteger类;

/*
    BigInteger:
                概述:     java.math.BigInteger 类,不可变的任意精度的整数。
                         如果运算中，数据的范围超过了long类型后，可以使用BigInteger类实现，该类的计算整数是不限制长度的

                构造方法:   BigInteger(String value) 将 BigInteger 的十进制字符串表示形式转换为 BigInteger
                          传入的是十进制数的"字符串"

                成员方法:   加 减 乘 除
                          1.add(BigInteger value) 返回其值为 (this + val) 的 BigInteger，超大整数加法运算
                          2.subtract(BigInteger value) 返回其值为 (this - val) 的 BigInteger，超大整数减法运算
                          3.multiply(BigInteger value) 返回其值为 (this * val) 的 BigInteger，超大整数乘法运算
                          4.divide(BigInteger value) 返回其值为 (this / val) 的 BigInteger，超大整数除法运算，除不尽取整数部分
 */

import java.math.BigInteger;

public class Test {
    public static void main(String[] args) {

        //创建一个BigInteger类的对象
        BigInteger b1 = new BigInteger("100000000000000000000000000");
        BigInteger b2 = new BigInteger("521345879898481021651005416");

        //1. b1 + b2
        BigInteger res1 = b1.add(b2);
        System.out.println("b1+b2=" + res1);

        //2. b1 - b2
        BigInteger res2 = b1.subtract(b2);
        System.out.println("b1-b2=" + res2);
        //3. b1 * b2
        BigInteger res3 = b1.multiply(b2);
        System.out.println("b1*b2=" + res3);
        //4. b1 / b2
        BigInteger res4 = b1.divide(b2);
        System.out.println("b1/b2=" + res4); // 0 ,除不尽取整数部分
        BigInteger res5 = b2.divide(b1);
        System.out.println("b2/b1=" + res5); // 5 ,除不尽取整数部分
    }
}
